import logging
from LMS.settings import EMAIL_HOST_USER
from django.core.mail import send_mail
from celery_tasks.main import app

logger = logging.getLogger(__name__)  # 用当前文件名来命名日志器，(__name__)表示当前文件名


@app.task(name='send_mail_task')  # 把send_mail_task给app提交了celery异步任务
def send_mail_task(email, username, password, classes_name):
    """
    发送邮件通知
    :param email: 收件人邮箱
    :param username: LMS登录系统用户名
    :param password: LMS登录系统初始密码
    :param classes_name: 所属班级名
    :return:
    """
    email_param = {
        'subject': '码趣教育-LMS学习系统',  # 邮件主题
        'message': '',  # 信息
        'html_message':  # html信息
            f"""
            <h2>欢迎大家加入码趣教育{classes_name}</h2>
            <p>您的登录用户名是：<span style="color:blue">[{username}]</span></p>
            <p>您的初始登录密码是：<span style="color:blue">[{password}]</span>,请及时登录修改密码</p>
            <p><a href='http://127.0.0.1:8080/'>点击访问码趣教育-LMS系统</a></p>
        """,
        'from_email': EMAIL_HOST_USER,  # 从哪个邮件发送
        'recipient_list': [email],  # 收件人邮箱
    }
    try:
        res_mail = send_mail(**email_param)
    except Exception as e:
        logger.error(f'邮件发送[异常][email:{email}], massage:{e}')
    else:
        if res_mail != 1:
            logger.warning(f'邮件发送[失败][email:{email}]')
        else:
            logger.info(f'邮件发送[正常][email:{email}, username:{username}]')
